.TH std::timespec 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::timespec \- std::timespec

.SH Synopsis
   Defined in header <ctime>
   struct timespec;           \fI(since C++17)\fP

   Structure holding an interval broken down into seconds and nanoseconds.

.SH Member objects

   std::time_t tv_sec whole seconds – >= 0
   long tv_nsec       nanoseconds – [0, 999999999]

   The declaration order of tv_sec and tv_nsec is unspecified. Implementation may add
   other data members to timespec.

.SH Notes

   The type of tv_nsec is long long on some platforms, which is currently
   non-conforming in C++, but is allowed in C since C23.

.SH Example


// Run this code

 #include <ctime>
 #include <iostream>

 int main()
 {
     std::timespec ts;
     std::timespec_get(&ts, TIME_UTC);
     char buff[0x80];
     std::strftime(buff, sizeof buff, "%D %T", std::gmtime(&ts.tv_sec));

 //  auto [sec, nsec] = ts; // UB: structured bindings should not be used because the
                            // declaration order and data member list are unspecified

     std::cout << "Current time: " << buff << " (UTC)\\n"
               << "Raw timespec.tv_sec: " << ts.tv_sec << '\\n'
               << "Raw timespec.tv_nsec: " << ts.tv_nsec << '\\n';
 }

.SH Possible output:

 Current time: 04/06/23 12:03:31 (UTC)
 Raw timespec.tv_sec: 1680782611
 Raw timespec.tv_nsec: 678437213

.SH See also

   timespec_get returns the calendar time in seconds and nanoseconds based on a given
   \fI(C++17)\fP      time base
                \fI(function)\fP
   tm           calendar time type
                \fI(class)\fP
   C documentation for
   timespec
